typedef struct treenode {  
        char * label;
        struct treenode *nextBrother;
        struct treenode *firstChild; 
} TreeNode;

typedef struct tree {
  struct treenode *node;
} Tree;

extern Tree  * newTree( TreeNode * tnP );
extern TreeNode * newTreeNode( char * label );

extern void dfsTraversalOn(TreeNode * tnP);
extern void addChildToParentNode( TreeNode * parentP, TreeNode * childP );
extern TreeNode * getNodeFromRoot(Tree *t);

